【批量服务器密钥分发】

# 安装sshpass命令
yum -y install sshpass

# 生成主机密钥
ssh-keygen

# 进入/etc/ansible目录，下载ssh.ssh脚本
curl -O https://gitee.com/su-bushi/linux-script/raw/master/basic/ansible/ssh.sh

# 准备环境IP文件
vim /etc/ansible/ip.txt
将需要管理的主机IP填入该文件，格式为一行一个IP

# 授权脚本
chmod +x /etc/ansible/ssh.sh

# 执行脚本
/etc/ansible/ssh.sh /etc/ansible/ip.txt 22 'auto202502Test#1' > /etc/ansible/ssh.log 2>&1
其中：
/etc/ansible/ssh.sh 是密钥分发脚本
/etc/ansible/ip.txt 是主机IP列表文件
22 是ssh端口
auto202502Test#1 是root用户密码


# 分发密钥时出现密钥格式报错解决方法
Unable to negotiate with **** port 22: no matching host key type found
/usr/bin/ssh-copy-id: ERRoR: Unable to negotiate with 1.196.14.168 port 22: nomatching host key type found. Their offer: ssh-rsa

执行以下命令：
echo "
Host *
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedKeyTypes +ssh-rsa
" >> ~/.ssh/config

重新分发单个密钥测试是否成功
ssh-copy-id ***